namespace ext.dd
{
	using System;
	using System.Runtime.CompilerServices;
	using System.Html;
	using System.Collections;
	
	
	/// <summary>
	/// A specialized drag proxy that supports a drop status icon, {@link Ext.Layer} styles and auto-repair. This is the
	/// default drag proxy used by all Ext.dd components.
	/// </summary>
	/// <definedin>src\dd\StatusProxy.js</definedin>
	[ScriptName("StatusProxy")]
	[ScriptNamespace("Ext.dd")]
	[Imported()]
	public partial class StatusProxy
	{
		
		#region Constructors
		/// <summary>Constructor</summary>
		/// <param name="config"></param>
		public StatusProxy(ext.dd.StatusProxy_Configuration config)
		{
		}
		
		/// <summary>Constructor</summary>
		public StatusProxy()
		{
		}
		#endregion
		
		#region Fields
		/// <summary>The CSS class to apply to the status element when drop is allowed (defaults to &quot;x-dd-drop-ok&quot;).</summary>
		/// <definedin>src\dd\StatusProxy.js</definedin>
		[ScriptName("dropAllowed")]
		public string DropAllowed;
		
		/// <summary>The CSS class to apply to the status element when drop is not allowed (defaults to &quot;x-dd-drop-nodrop&quot;).</summary>
		/// <definedin>src\dd\StatusProxy.js</definedin>
		[ScriptName("dropNotAllowed")]
		public string DropNotAllowed;
		#endregion
		
		#region Methods
		/// <summary>
		/// Updates the proxy&apos;s visual element to indicate the status of whether or not drop is allowed
		/// over the current target element.
		/// </summary>
		/// <definedin>src\dd\StatusProxy.js</definedin>
		/// <param name="cssClass">The css class for the new drop status indicator image</param>
		[ScriptName("setStatus")]
		public void SetStatus(string cssClass)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Resets the status indicator to the default dropNotAllowed value</summary>
		/// <definedin>src\dd\StatusProxy.js</definedin>
		/// <param name="clearGhost">True to also remove all content from the ghost, false to preserve it</param>
		[ScriptName("reset")]
		public void Reset(bool clearGhost)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Returns the underlying proxy {@link Ext.Layer}</summary>
		/// <definedin>src\dd\StatusProxy.js</definedin>
		/// <returns>el</returns>
		[ScriptName("getEl")]
		public ext.Layer GetEl()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Returns the ghost element</summary>
		/// <definedin>src\dd\StatusProxy.js</definedin>
		/// <returns>el</returns>
		[ScriptName("getGhost")]
		public ext.Element GetGhost()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Hides the proxy</summary>
		/// <definedin>src\dd\StatusProxy.js</definedin>
		/// <param name="clear">True to reset the status and clear the ghost contents, false to preserve them</param>
		[ScriptName("hide")]
		public void Hide(bool clear)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Stops the repair animation if it&apos;s currently running</summary>
		/// <definedin>src\dd\StatusProxy.js</definedin>
		[ScriptName("stop")]
		public void Stop()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Displays this proxy</summary>
		/// <definedin>src\dd\StatusProxy.js</definedin>
		[ScriptName("show")]
		public void Show()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Force the Layer to sync its shadow and shim positions to the element</summary>
		/// <definedin>src\dd\StatusProxy.js</definedin>
		[ScriptName("sync")]
		public void Sync()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Causes the proxy to return to its position of origin via an animation. Should be called after an
		/// invalid drop operation by the item being dragged.
		/// </summary>
		/// <definedin>src\dd\StatusProxy.js</definedin>
		/// <param name="xy">The XY position of the element ([x, y])</param>
		/// <param name="callback">The function to call after the repair is complete.</param>
		/// <param name="scope">The scope (<c>this</c> reference) in which the callback function is executed. Defaults to the browser window.</param>
		[ScriptName("repair")]
		public void Repair(System.Array xy, System.Delegate callback, object scope)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Updates the contents of the ghost element</summary>
		/// <definedin>src\dd\StatusProxy.js</definedin>
		/// <param name="html">
		/// The html that will replace the current innerHTML of the ghost element, or a
		/// DOM node to append as the child of the ghost element (in which case the innerHTML will be cleared first).
		/// </param>
		[ScriptName("update")]
		public void Update(string html)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Updates the contents of the ghost element</summary>
		/// <definedin>src\dd\StatusProxy.js</definedin>
		/// <param name="html">
		/// The html that will replace the current innerHTML of the ghost element, or a
		/// DOM node to append as the child of the ghost element (in which case the innerHTML will be cleared first).
		/// </param>
		[ScriptName("update")]
		public void Update(System.Html.Element html)
		{
			throw new System.Exception("Imported - not implemented");
		}
		#endregion
	}
}
